icon.library 46.4

Browse >




  Universal Amiga OS 3.x icon.library in Assembler
  ________________________________________________


   Program Description       Programmbeschreibung 

   System Requirements       Voraussetzungen 

   Program Features          Eigenschaften 

   Library Versions          Library Versionen 

   Latest Changes            Letzte Änderungen 

   Download Links            Bezugsquellen 

   Installation              Installation 

   Configuration             Konfiguration 

   Third Party Tools         Drittanbieter Tools 

   HAM + DOpus5 + Bonus      HAM + DOpus5 + Bonus 



   Contact and Feedback      Kontakt und Berichte 

   Important Restrictions    Einschränkungen !! 

   Rights & Distribution     Rechte & Verteilung 



                 Copyright 2007-2025

                   Peter Keunecke

 Program Description 

Contents | < Browse | Browse >



 This is an optimized replacement for the icon.library 
 of AmigaOS 3.0-3.9 or Aros 68k which can exist in the
 Kickstart ROM or is loaded from the LIBS: directory.

 This shared library offers several functions to load,
 decode, display and save icon images and to configure
 settings for the execution of the associated programs
 by storing tooltypes, a default tool, stacksize, icon
 position and drawer window data in the ".info" files. 

 Supported icon types are all old and MWB planar icons 
 as well as color-mapped NewIcons or OS 3.5 ColorIcons 
 and also OS4 and PNG TrueColor and merged Aros icons.  

 All icons can be displayed either with the blitter or
 FBlit and the Amiga chipset or on a graphics card by
 P96 or CGX in their best quality as fast as possible.

 There are 5 methods available to display icon images:

 1.) Planar icons are using bitplane data directly to
     select pens and currently assigned screen colors.
     No color palette data is stored in planar icons,
     thus they need a screen palette with locked pens.

 2.) The NewIcons and ColorIcons are using index bytes
     for every pixel pointing to a 24 bit RGB palette,
     so they are limited to 256 colors for each image.
     One of them can be used for transparency masking.
     The colors have to be mapped to the actual screen
     palette and the images are converted from chunky
     data into bitplanes, which both can take a while.
     This method always finds the best matching colors
     of the screen palette or tries to get a free pen.

 3.) On Hi/TrueColor screens NewIcons and ColorIcons
     are displayed perfectly by directly drawing their
     24 bit RGB colors to a gfx-card without mapping.
     This can be done a lot faster than the 2. method,
     and also leaves more pens for other applications.

  :( Unfortunately, the WB icon dragging routine still
     needs traditional bitplanes from selected images.
  :) To keep loading fast the color reduction, mapping
     and C2P are delayed until the icons get selected. 

 4.) OS4, PNG and Aros icons are using TrueColor ARGB
     images with 24 bit color data and an Alphachannel
     byte for soft border fading over the background.
     On gfx-cards these icons are displayed perfectly.
     But on 8-bit and planar screens they first need a
     time consuming color reduction into OS 3.5 icons
     followed by the color mapping and C2P conversion.

 5.) On HAM screens palette based icons are converted
     into ARGB images like OS4 and PNG icons and then
     either one of the 16 or 64 base colors is used or
     2 color components of the previous pixel are hold
     and that with the greatest difference is updated.
     HAM images can display much more different colors
     on a native Amiga screen than the color mapping.
     But the chipset is far too slow to work with HAM.

System Requirements

Contents | < Browse | Browse >



 Ok, the most important required qualification first:

 The system needs a user who understands how it works
 and what he's really doing when he changes something.
 Nobody just knowing the fire-button on his joystick.

 Somebody asked me to mention that the name_extension 
 has to be removed after copying a library into Libs:. 
 Yes, of course, you sometimes have to use your brain. 

 For experienced users of Amiga OS 3.x and Aros 68k: 

 This icon.library can be used on all real Amigas, on
 Minimig, Vampire, Amithlon and emulators like WinUAE.

 It works with any 680x0 CPU and needs no FPU or MMU.
 The library can display all icons on all screenmodes.

 The 68000 version was made for fast systems like the
 Minimig, because a plain Amiga at 7 MHz is too slow!
 The fastest thing you can do with such a slow Amiga:
 "Throw it into the bin!"... or buy an accelerator ;)

 If you really want to use something better than just
 4-color or MagicWB icons then you need a CPU >30 MHz. 

 Planar icons can not be made faster by icon.library,
 because they need no decompression or color mapping.
 
 You should have a fast harddisk, enough FastMem and 
 a gfx-card to have more fun, but that's not required. 

 This library works with every Workbench since v39 or
 Wanderer (Aros version) and AfA_OS, DOpus5 or Scalos.

 On some systems you have to replace the icon.library
 that is loaded from the Kickstart ROM with tools like
 SetPatch v44+ or RemLib, LoadResident or LoadModule.

 The support for PNG icons is limited to RGB and RGBA. 
 Only these two TrueColor formats are decoded, but no 
 grayscale or interlaced or PLTE palette based images. 
 Only the chunks IHDR, IDAT, icOn and IEND are parsed, 
 all other PNG chunks are skipped over and ignored. A
 wrong image type causes a fallback to default icons.

Program Features

Contents | < Browse | Browse >



 This icon.library can display all types of icons like
 old, MWB, OS 3.5, OS4, PNG or Aros icons and NewIcons.

 It works on all OS 3.0-3.9 and Aros 680x0 systems and
 can be used for any native screenmode or on gfx-cards.

 This library has been written completely in optimized
 assembler code with my IconBeFast v2 already built in.
 It is smaller than the original and works much faster,
 provided that the IconBeFast patch was not installed
 already, which is also included in the SystemPatch v3.

 But this icon.library has more improvements than just
 a faster color mapping. It can also delay the decoding
 of the 2. image, until an icon gets actually selected.

 It won't waste ChipMem for Workbench icons, if you set
 Prefs/Workbench to use "Other Memory" or by adding the
 command WBCTRL IMT=ICONFAST to your startup-sequence.
 OS 3.1.4-3.2 does not need memory settings like that.

 A cache for the screens colortable is built just once
 after booting and will be updated only when the number
 of shared pens has changed.

 Another optional cache with a cube of 512 "FastColors"
 can be used to calculate the closest colors directly.
 On RTG screens this optimization is always activated,
 because they need these colors only for icon dragging. 

 A zlib inflate function is embedded for uncompressing
 OS4 and PNG images. The library has a color reduction
 which is based on 15 bits precision for the first 128
 colors until the palette is scanned with less bits for
 a matching color or before another one is added to it.
 A palette occupation table avoids up to 200 scans to
 save time. A fast dithering changes the brightness of
 the pixels alternately by +2 or -2 and uses a checker
 board pattern for new mixed colors and higher quality.

 This library can display TrueColor icons on all native
 Amiga screens with normal palette based color mapping.
 Two levels of the alpha channel are translated into a
 mixture with 25 % or 50 % of gray to get soft borders,
 because the blitter supports only transparency masks.

 WB:Icon->Info and saving TrueColor icons will convert
 them into the OS 3.5 format with both 680x0 versions.
 But 68020 displays a requester in case that TrueColor
 icons would directly be replaced by ColorIcons. It can
 be allowed or prevented for a single icon, in drawers
 or always. The OS 3.5 conversion has the advantage of
 getting smaller files and a much faster icon loading,
 although the lower quality is very often hard to see.

 Bad planar images in OS 3.5 and OS4 icons are replaced
 by internal defaults, if too tiny or with a depth > 3.

 TrueColor icons with only one image will automatically
 get a darker second image with a simple glow-effect.

 For Hi/TrueColor screens a direct drawing mode on gfx-
 cards is much faster than the color mapping and offers
 HiColor image quality or even a pefect icon rendering.
 TrueColor versions like TC020 are also supporting soft
 borders by alpha channel blending over the background.
 Only the 68000 version has no direct drawing built-in,
 because there are no gfx-cards or drivers available.

 DefIcons are displayed ghosted with 50 % transparency. 
 If you don't like this feature, call "IconGhostingOff"
 or add the tooltype "NoGhost" to particular deficons.

 The Ram Disk icon gets automatically synchronized with
 def_Ram.info in ENV:Sys and ENVARC:Sys, and you won't
 need Copy or MakeLink to create a RAM:Disk.info file.

 Icon labels can be written in Outline or Shadow style.

 The space optimization routine for writing was added.
 It is always activated, regardless of option settings,
 and it rebuilds the color tables from scratch closing
 possible gaps and avoiding multiple entries with same
 RGB values. Icon images are always compressed now, but
 the RGB color tables are simply copied. That's faster.

 The optimized RLE decoder has a direct 8-bit handling.
 The decoding of the 2. image is done just in time now. 

 Supports the OS 3.1.4 function BumpRevisionLength() to
 make copies of icons with long file names possible. It
 could also be done with WB v45.132 and WBCTRL MNL=102.

 All v51 versions can display the Eastern preview icons
 in TrueColor. Saving as OS4 icons is also possible, if
 zlib.library v3.2 is installed, ColorIcons by default.
 The OS 3.9 picture.datatype 45.17 offers best scaling.

 This icon.library has support for DOpus5, AfA_OS and a
 special version for Aros 68k and Wanderer is included.

 File types can be identified by DefIcons v47+ and also
 by the datatypes system to load the default icons.

 "Tricky Drag°n" allows icon dragging in RGB TrueColors
 and with soft alpha channel fading at the borders with
 P96 on Workbench 3.0-3.9 for OS4 and PNG icons and RGB
 for palette based ColorIcons and NewIcons. This should
 also work with P96 v3.x, but I can't test new versions.

 "Tricky Drag°n" now also works under DOpus 5.x on P96
 RTG screens without using "Custom Dragging Routines",
 even with DOpus 5.9x, but not under Aros 68k or CGX4.

 In order to reduce the amount of data that has to be
 transferred between the CPU and the gfx-card over the
 slow Zorro bus, the rectangles of TrueColor images are
 made as small as possible by removing the outer parts,
 which are nearly 100 % transparent, when alpha is 0-2. 
 This was already implemented for ColorIcons on RTG.
 The rectangles of the first images (unselected icons)
 can be reduced by 20-40%, but the 2. images only < 5%,
 because the glow effect covers most of the free space.

 Some small speed improvements 2-8% on chunky screens
 for icons with 64 colors or more and for WB v44+ only
 by using the cybergraphics WritePixelArray() function
 and the LUT8 format without C2P conversion or masks.
 This concerns only unselected icons and no deficons.

 Added support for IconControlA() GetARGBImageData1
 and GetARGBImageData2, two tags of the Aros API, plus
 GetImageData1/2 with the OS4 tag SetImageDataFormat=2
 for extracting TrueColor images with Alpha Channel.

 Library versions 

Contents | < Browse | Browse >



 The 68000 version uses palette based color mapping for
 all NewIcons, ColorIcons, OS4 and PNG icons. It has no
 support for direct drawing on graphics cards nor any
 special handling or optimization for 68020+ programs.

 The 68000 and 68020 versions always display OS4 and PNG
 icons after a color reduction in the OS 3.5 format with
 maximal 255 colors and a simple transparency mask, even
 on Hi/TrueColor screens. But if you save the converted
 icons in this OS 3.5 format, they will become smaller
 and can be loaded much faster than the TrueColor icons.

 OS 3.2 won't accept the v46 libraries, but TC020 works. 

 The 68020 version is probably the best choice for slow
 Amigas and it already has support for direct drawing on
 graphics cards. On Hi/TrueColor screens it displays all
 palette based icons perfectly, only OS4 and PNG icons in
 a little lower quality but with less memory than TC020.
 After saving TrueColor icons in the OS 3.5 format they
 can be loaded much faster than the original ARGB icons!

 The TC020 version can display OS4 and PNG icons in best
 TrueColor quality and with soft alpha channel blending
 on graphics cards. This can happen very fast without a
 time consuming color reduction, but needs more memory
 to hold the compressed ARGB images. The icons are also
 copied and saved in their original OS4 or PNG format.
 TC020 has additional ARGB buffers for faster rendering.
 Furthermore, TC020 supports 8-bit and native modes by
 a color reduction in the same way as the 68020 version.

 PNG icons can be converted into the OS4 format, which
 makes them about 15 % larger, but loading 30 % faster.
 If, for some reason, you would like to save ARGB icons 
 in the OS 3.5 format, you could still use the command 
 "ConvertTrueColor" before displaying them. This works
 like a downgrade to the 68020 mode. "PreserveTrueColor"
 switches back to the TC020 mode. The v51 versions can
 display the preview icons of Eastern in TrueColor, too.


 Some special versions are stored in the Bonus drawer: 

 I've made a new experimental FastWB version to achieve
 a faster and more responsive icon dragging and refresh
 on Workbench 3.1.4/3.5/3.9 for slower Amigas. It's not
 a 100 % perfect solution, because it still can happen
 that some parts of the window where you select the
 icons are not refreshed after the dragging, but that's
 not a big problem, since you can still update windows
 from the WB menu. My fix already tries to take care for
 any window switching, scrolling, resizing and also has
 a timeout of 1 second after the last icon movement in
 order to avoid a later graphical damage from menus or
 requesters opening suddenly over the active window. Try
 it out and report any issues or enjoy the speed-up. It
 is best used together with the option "HoldTCbuffer1". 

 The Aros 68k version is quite the same as TC020, but it
 has some additional support for Wanderer which uses the
 alpha channel data to make the background transparent.
 This feature needs to be enabled in the preferences for
 Wanderer. It's no v51 version, because Eastern doesn't
 work on Aros yet, but you can use DefIcons v44+ from
 Stephan Rupprecht in WBstartup + ENVARC:deficons.prefs.

 The LD020 version uses some older line by line direct
 drawing code that sometimes is still faster than 68020
 to display color mapped icons on a Hi/Truecolor screen.

 The HB020 version displays a HalfBright second image
 for TrueColor icons with one image, not a glow effect.

 The new 68020 based lite version "Smurf", which won't
 use pen 0 for the color mapping to avoid color fades to
 appear in the icon images when you run a Copper-demon. 
 "Smurf" has no support for OS 3.2, datatype detection,
 and no icon size scaling or grayscale mapping options.

 The HAM6 and HAM8 versions are based on TC020, but are
 able to display NewIcons, ColorIcons, OS4 and PNG icons
 with much more different HAM colors on the Workbench by
 using the AGA chipset. Makes not much sense on OCS/ECS.
 Unfortunately, the Amiga is too slow to enjoy HAM WBs.

 Latest changes 

Contents | < Browse | Browse >



 Build #592 (2024/12/31): 

 The transparency mask for planar icons with one image
 only and when "Backfill" mode is enabled uses Flood()
 from border pixels again to make color 0 transparent.
 All other pixels with color 0 are remaining gray now.

 #592: Fixed an uncritical bug of #591, the Open-count
 of cybergraphics.library was increased for every Open
 of icon.library due to tests with an outdated offset.

 The MakePlanarMask code has been optimized and needs
 no ReadPixel() calls anymore and only one Flood() to
 reach all transparent pixels from a temporary border.
 The new code is smaller and 8-9% faster without Jit.
 Updated 68000 and 68020 libraries are also included. 

 Unfortunately, WB 3.0/3.1 will never use blit-masks.


 There is another new special version "BWswap" which
 can swap pen 1 and 2 with "BWswappingOnOff" in order
 to exchange Black and White in a dark theme by force,
 because some programs don't allow to configure their
 colors by user defined settings as it is possible in
 the WB assignments in palette and font preferences.
 Tell me your opinion, whether I should integrate it?

 Download links 

Contents | < Browse | Browse >



 The complete icon.library package is available at: 
 http://aminet.net/package/util/libs/IconLib_46.4

 Updates, bugfixes, test versions and IconDemoADFs: 
 http://eab.abime.net/showthread.php?t=64079

 Some other useful programs at Aminet are:  
 http://aminet.net/package/gfx/misc/pngcrush-m68k
 http://aminet.net/package/util/app/dropview
 http://aminet.net/package/util/boot/FBlit
 http://aminet.net/package/util/boot/LoadModule
 http://aminet.net/package/util/boot/RemAPollo
 http://aminet.net/package/util/libs/zlib-library
 http://aminet.net/package/util/misc/ReportPlus
 http://aminet.net/package/util/wb/AutoUpdateWB
 http://aminet.net/package/util/wb/CopyIcon44
 http://aminet.net/package/util/wb/DefIcons44
 http://aminet.net/package/util/wb/Eastern
 http://aminet.net/package/util/wb/FullPalette22
 http://aminet.net/package/util/wb/image2icon
 http://aminet.net/package/util/wb/i2iGUI-V2
 http://aminet.net/package/util/wb/KDEView
 http://aminet.net/package/util/wb/MUIScrMode1_5
 http://aminet.net/package/util/wb/NewIcons46
 http://aminet.net/package/util/wb/ProcessIcon
 http://aminet.net/package/util/wb/SwazInfo18b install by hand

 Some high resolution monitor drivers (for HAM6/8): 
 http://aminet.net/package/driver/moni/HighGFXnmore

 A very useful tool for icons is ImageConverter: 
 https://sourceforge.net/p/amega1/code/HEAD/tree/Sources/Tools/ImageConverter

 Icon sets:
 http://aminet.net/pix/gicon
 http://aminet.net/pix/icon
 http://aminet.net/pix/mwb
 http://aminet.net/pix/nicon
 http://aminet.net/pix/picon
 http://www.masonicons.de
 http://www.five-star.com/kens_icons/icons.htm
 http://www.amiga-look.org/category/glowicons
 http://www.intuitionbase.com/customisation.php?category=icons
 http://os4depot.net/index.php?function=browse&cat=graphics/icon

 Icon structure:
 http://krashan.ppa.pl/articles/amigaicons
 http://www.evillabs.net/wiki/index.php/Amiga_Icon_Formats

 Installation 

Contents | < Browse | Browse >



 The installation depends on many things like CPU, ROM,
 OS and WB version, memory, gfx-system, speed, patches. 

 On most 68020+ systems with a workbench.library v44+  
 just copy my libs/icon.library into your LIBS: drawer.  

 The v51 TC020 version is supplied as libs/icon.library
 now, which can be used on ALL systems with 68020+ CPUs. 
 No, it does not need a gfx-card, although it offers all
 the support for TrueColor screens and icons in the best
 possible quality. Of course, it also works with native
 Amiga screen modes and even without P96 or CGX drivers.

 But you could also try out the FastWB version instead,
 which ignores many redundant refreshes from WB v44/45.

 Always remove name extensions and set the flags P-RW-D.

 For long file names adjust your Workbench preferences.

 OS 3.2 needs at least an icon.library v47, so you can
 only install the v47 or the v51 icon.libraries on 3.2,
 but it's still possible to call "ConvertTrueColor" in
 case that you prefer to create faster 3.5 ColorIcons.
 Best choice for OS 3.2 is TC020 from libs/icon.library,
 HB020 if you like. 68020 is too old, FastWB not needed.

 Most 68000 systems are far too slow to have a benefit
 from using the 68000/icon.library, you can't even load
 icons into FastMem. FBlit, P96 and CGX need 020+ CPUs.
 My 68000 version is for faster systems like a Minimig.

 On OS 3.0/3.1 systems it's required to remove the old
 icon.library of the Kickstart Rom from the list of the
 resident modules before a new icon.library from Libs:
 can be loaded. I'd recommend to use RemLib by Thomas
 Rapp or SetPatch v44, because they won't cause reboots.
 On the same way you can also replace the old workbench.
 A new WB v44+ has many advantages for old 3.1 systems. 
 SetPatch v44 will update both without additional tools.
 If you have an older version, add this before SetPatch:

 If EXISTS Libs:icon.library
    RemLib >NIL: icon.library
    If EXISTS Libs:workbench.library
       RemLib >NIL: workbench.library
    EndIf
 EndIf

 Alternatively, it's possible to load the new libraries
 resident, but these methods need to reboot your system.
 This can be done with LoadResident, LoadModule or other
 tools like BlizKick. - Or you could build your own Rom.
 For example, insert these lines before SetPatch (<v44):

 Version >NIL: icon.library 46
 If WARN
    If EXISTS LIBS:workbench.library
       LoadResident >NIL: LIBS:workbench.library
    EndIf
 LoadResident >NIL: LIBS:icon.library REBOOT
 EndIf

 OS 3.0/3.1 has just one limitation of workbench.library
 v39-40, which will never reload the palette based icons
 after a screenmode change automatically. You can use my
 RefreshIcons tool now to reload or remap all ColorIcons.

 Install SwazInfo on WB 3.0/3.1 to replace WB=>IconInfo.
 If the SwazInfo Installer fails, install it manually.

 The NewIcons patch can be used to achieve a transparent
 background for the icon images, and supplies DefIcons !  

 I've created some demo floppy images for OS 3.0/3.1 to
 show you how to install the library and other programs: 
 IconDemoADF http://eab.abime.net/showthread.php?t=64079

 The Envarc:FBlit.cfg for WB 3.1 and also for WB 3.1.4+
 are provided. It depends only on the workbench.library
 version (v39-40 or v44+) which config file FBlit needs.
 FastMem will be used by default if FBlit was detected.

 Never install FBlit together with a P96 or CGX driver.

 On systems with P96 or CGX you should activate FastMem 
 for the icon images. On OS 3.9 set Prefs/Workbench to
 "other memory", or on 3.5 call "WBCTRL IMT=ICONFAST",
 on WB 3.0/3.1 you can use my command "IconsToFastMem".
 OS 3.1.4-3.2 activates FastMem automatically for RTG.  

 An alternative CPU version of the icon.library can be
 installed in a subdirectory of LIBS: for the case that
 no library was already resident. If LIBS:icon.library
 is the 68000 version then you can add a 020 CPU version
 as LIBS:68020/icon.library. Or if LIBS:icon.library was
 compiled for the 68020+ then you can add an alternative
 as LIBS:68000/icon.library. The correct version will be
 loaded automatically. This feature works with SetPatch
 v44 or RemLib by Thomas Rapp, but not with LoadModule,
 LoadResident, BlizKick or with a resident icon.library.

 .

 Configuration 

Contents | < Browse | Browse >



  Optional commands to be called before LoadWB starts:
  ____________________________________________________

 AllFramesOn1/2/3 and AllFramesOff are for systems with
 WB v44+ on OS v39-44. The number at the end (1-3) sets
 the frame size. But some color icons may never get any
 frames when they have an internal "Frameless" flag set
 which can only be changed with the OS 3.9 IconEdit or
 the icon processor modul of Report+. On WB 3.1 you can
 use the NewIcons patch to enable transparent frames.
 On WB v45+ the frame settings are in Prefs/Workbench.    
 
 PlanarFrames1/2/3 can be used on WB v44+ to enable the
 frames exclusively for the old 4-color and MWB icons,
 but not for TrueColor or color mapped icons. Changing
 the frame sizes in Prefs/Workbench is still possible.
 By calling PlanarFrames1/2/3 once, the True/ColorIcons
 will always remain frameless, ignoring AllFramesOn1-3.
  
 A faster color mapping mode is optional available and
 can be activated by setting icon quality to bad under
 Prefs/Workbench. On WB v39-44 you can use the command
 FastColors. It maps 512 RGB colors with a cubic cache.
 I would recommend to use this option on slower Amigas.
 With a locked screen palette the quality won't change.

 IconsToFastMem can be used on Amigas with gfx-cards to
 load the icons faster and save ChipMem if you have no
 other program like Prefs/Workbench or WBCtrl to do it.
 It's sometimes required for WB 3.1, but not for FBlit.
 On OS 3.1.4-3.2 the memory type is set automatically.
 
 IconsTo24BitDmaMem can be used for saving some of the
 faster 32-bit memory for your real applications. But
 this option will also make the icon rendering slower.

 IconGhostingOff disables the 50 % transparency of the
 deficons, in case that somebody prefers opaque icons.
 
 GrayscaleOnOff can be used to display icons in shades
 of gray only instead of colors. You can activate it in
 Prefs/Workbench by setting icon quality to bad again.
 WB v39-44 needs both: GrayscaleOnOff plus FastColors.
 This option is only available for the 68020 version.
 
 OutlineIconText and ShadowIconText are optimizing the
 style of icon label text. Open Prefs/Fonts to choose
 a text color and the background color, but then switch
 back to text-only mode before you save your settings.
 OS 3.2 supports these label text modes in Prefs/Fonts.
 
 After activating outline or shadowtext or grayscale at
 runtime you need to update your icons with a WB-Reset.

 FileType is a test program for the type identification 
 feature of the OS 3.2 DefIcons tool. For experiments.

 KillPlanarImages and KeepPlanarImages are changing the
 libraries treatment of old images in OS 3.5-4.x icons.  
 Without these options planar images with over 8 colors
 or a width of less than 8 pixels are replaced by the
 internal 4-color default images. KillPlanarImages will
 replace always. KeepPlanarImages saves broken colors.
 With KillPlanarImages you can reduce the icon size and 
 avoid some memory wastage for up to 256 wrong colors. 
 If the icons are loaded into ChipMem then a small dot
 image is used instead of the internal default images.
 To test it just disable ColorIcons in Prefs/Workbench.

 Reduce8PlanesTo3 can be used to convert wrong looking
 MWB icons with 256 colors for using the pens 0-7 only.
 This option is an alternative to the previous options.  

 FakeIconSizeForAfA compensates the problem that AfA_OS
 has with different sizes of my internal default images
 in comparison to the larger color mapped or OS4 icons.
 It's for AfA only, because it wastes space on WB 3.1.

 ConvertTrueColor can be used for OS4 and PNG icons if
 you still want to create the smaller and faster OS 3.5
 format with up to 255 colors using TrueColor versions.
 Of course, you've to save the icons to get more speed.
 PreserveTrueColor switches back to the TrueColor mode.

 ConvertPNGtoOS4 makes PNG icons about 15 % larger, but
 loading OS4 icons is about 30 % faster. This feature
 needs the zlib.library v3.2 being installed to work.
 Only TrueColor versions are supporting the conversion.

 HoldTCbuffer1 makes the window scrolling, resizing and
 the slow icon dragging of the WB a little faster, but
 with a higher memory consumption. All buffer memory is
 always freed as soon as the window is closed again. It
 is only working in TrueColor versions on RTG screens.

 Added the options "DropNewIcons", "KeepNewIcons" and
 "DropColorIcons", "KeepColorIcons" for WB 3.0/3.1.

 These global options are working similar to the v45+
 Workbench Preferences switches "No NewIcons" and "No
 ColorIcons", but I've written them for WB 3.0/3.1 on
 demand from a user, who wanted to get rid of NewIcon
 and ColorIcon images. So, on WB 3.0/3.1 only, these
 options will cut off unwanted images by saving icons.

 DropNewIcons can remove the images from the tooltypes
 by writing the displayed planar icons back to disk.
 This can be done by selecting (all) icons in a window
 and snapshot their position as long as they were not
 moved before. Or you may use SwazInfo to save them.

 DropColorIcons can remove all chunky and ARGB images
 from icons (NewIcons too) when you save them to disk.
 Then, only the old planar and MWB images will remain.


 DOnoColorMapping was an option for TrueColor screens 
 on DOpus5 which could be used together with the enabled
 icon setting "Use Custom Drag Routines" for more speed
 and a better quality. It avoids all the color mapping.
 Use it with HoldTCbuffer1 for best speed and quality.
 It is highly recommended to install my patched version
 5.83 of DOpus5, which has a fix for a big memory leak.

 "DOnoColorMapping" is always activated for TrueColor
 versions now, so this option is not required anymore 
 for "Tricky Drag°n", except for the old 68020 version.

 
 IconUpScaling and IconDownScaling, only for the 68020
 version available, can be used from a shell at runtime
 to enlarge the images to 150 % or reduce them to 66 % 
 of their width and height. This works with all PNG, OS
 3.5 and OS4 icons, but not with NewIcons, old 4-color
 and MWB icons, but NewIcons can be converted. Calling
 these commands for a second time switches the scaling
 off again. Don't get confused when saving scaled icons
 to disk, because they are updated then and will appear
 immediately as double-scaled icons! Switch the scaling
 off after writing is done and then refresh the window.
 
 InvertGhostingMask is an optional fix that should only
 be installed if you get invisible deficons when you're
 dragging them around. Never use it without this issue!

 Third party tools 

Contents | < Browse | Browse >



 Always read the original tool documentation first ! 
 Use the download links to get the latest full packs.

 AutoUpdateWB by Elena Novaretti, Massimo Tantignone.
 This small patch lets Workbench automatically update
 the contents of a drawer window whenever a file is
 created/renamed/deleted in its associated directory
 by any other means than the Workbench itself. Added
 AutoUpdateWB v37.0 (29.3.2012) patched for old WBs.

 CopyIcon by Stephan Rupprecht can be used to copy
 the icon images from one icon to another one. But it
 won't overwrite any existing settings or tooltypes.
 I've modified CopyIcon to work on 68000 and WB 3.0+.

 FBlit by Stephen Brookes makes it possible to load
 images into FastMem and replace the blitter calls by
 faster CPU routines. This reduces the ChipMem usage.
 There are two FBlit.cfg files supplied, one for the
 old workbench.libraries v39/40, the other for v44+.
 The user is still responsible to install and setup
 FBlit, fblit.library, FBlitGUI, FBlit.cfg correctly.
 Never use it together with P96 or CGX installations.  

 FullPalette and FPPrefs by Massimo Tantignone can be
 used to set and lock colors of the screen palette.
 On some sytems it can be useful to have correct MWB
 colors or to use a fixed screen palette. It also has
 an optional fix for DOpus5 problems with ReleasePen.

 2 modified versions of Rebel's 16 color palette are
 supplied and can be copied as FullPalette.prefs into
 Envarc:Sys and used by calling FPPrefs after IPrefs.
 This may allow a much better balanced color mapping.

 LoadModule by Thomas Richter can load icon.library
 and other modules like workbench.library resident by
 replacing the Rom versions. Read the documentation.
 Some options need the "P" bit set for the libraries. 
 Some WBs v44-45 are not reset-proof and may need the
 LoadModule options IGNOREVERIFY and NOMEMFKICK then.
 On Aros 68k systems since 2020 LM seems not to work.

 LoadResident by Mikolaj Calusinski is a similar tool
 to load modules resident. See installation example.     
 On Aros 68k systems LoadResident did never work yet.

 RemLib by Thomas Rapp can remove libraries from the
 list of resident modules without making new modules
 resident. The advantage is that it needs no reboot! 
 Just make sure that you have an icon.library copied
 into Libs: and call RemLib before SetPatch as shown
 already in the example on the installation page. It
 still works on Aros 68k as long as no MMU is active.

 OpenWin.rexx by DaxB is a benchmark script which can
 measure the time it takes to open a window with many
 icons to compare the icon loading with other setups.
 It works with WB v44+ and DOpus5 and requires Arexx.

 Added a workaround for a bug in Startmenu 1.30 from
 Martin R. Elsner (MRE). Without any understandable
 reason Startmenu uses IconControlA() with SetWidth to
 change the internal width of the chunky image to 10.
 That setting is ignored now for the task "Startmenu".
 This won't work for a Project-icon in WBStartup. Copy 
 MRE:Executables/Startmenu with its icon to WBStartup.

 HAM + bonus programs 

Contents | < Browse | Browse >



 The HAM6 and HAM8 versions are a technical experiment. 

 OS4, PNG and also color mapped icons are displayed much 
 nicer on HAM screens with up to 4096 or 256k colors and 
 Eastern picture icons are looking a lot better in HAM8. 
 Unfortunately, HAM-WBs are too slow on Amiga chipsets. 

 Copy the icon.library from the HAM6 or HAM8 drawer into
 LIBS: and the FullPalette.prefs file into ENVARC:Sys to
 get the required 16/64 base colors and you have to call
 FPPrefs in your startup-sequence directly after IPrefs.
 HAM modes can only be selected with MUIScreenmodePrefs. 

 As an alternative, if you don't want install the latter
 you can try the HAM screenmode preset files which will
 need the corresponding monitor drivers being installed.
 The tooltypes ACTION=USE can be changed to ACTION=SAVE.

 Never change the colors 0-15 / 0-63 of the HAM palette!
 There are some extra files with the HAM palettes, which
 can be used for creating wallpapers with 16/64 colors.
 It's impossible to get the MWB colors for the last four
 pens of a palette on HAM screens. Use Reduce8PlanesTo3.

 The HAM versions have TrueColor support like TC020, but
 the delayed second image and the ghosting are disabled.
 DOpus5 has no real support for HAM screens. But you can
 choose the display setting "Use Workbench" as a screen.


 DirectoryOpus 5.82 and DOpus5.83 

 The new "Tricky Drag°n" also works under DOpus5 on P96
 RTG screens without using "Custom Dragging Routines",
 even with DOpus 5.9x, but not under Aros 68k or CGX4.
 If you want to run DOpus5 standalone by LoadDB on 3.2.x
 then add my option IconsToFastMem after calling IPrefs.
 The fastest screenmode under DOpus5 is "Use Workbench".

 "DOnoColorMapping" is always activated in all TrueColor
 versions now, so this option is not required anymore.

 The older 68020 version still needs "DOnoColorMapping":
 A completely new approach makes the DOPus5 icon loading
 a lot faster. Instead of delaying the colormapping, it
 is not done at all anymore on Hi/TrueColor screens when
 you disable it with my option DOnoColorMapping, but you
 have to enable "use custom drag routines" in DOpus too.
 I've also made a fix for a big memory leak in this code
 of DOpus 5.82 under P96 and added a better transparency
 masking for the icons when these options are activated.
 You will get a faster icon loading without using slower
 planar images. For the TC020, FastWB and Aros versions
 my option HoldTCbuffer1 is also recommended for optimal
 speed and soft borders on RTG screen modes.

 You can find a bug-fixed DOpus5.83 in the Bonus drawer.
 Rename it and replace DirectoryOpus if you are starting
 it by LoadWB. A DOpus v5.82 patch of AfA_OS for Eastern
 and DefIcons from Bernd Roesch can still be executed on
 my fixed DOpus5.83, since it's not a new C-compilation,
 but just an edited binary file, and the patching works.

 The DOpus5 bug in the custom dragging was the usage of
 "Width" in the VSprite structure of AddBob() instead of
 "Words Per Row" and also without any RemBob() later. It
 uses only AddVSprite() and RemVSprite() now in the fix.


 The Aros 68k version is quite the same as TC020, but it
 has some additional support for Wanderer which uses the
 alpha channel data to make the background transparent.
 This feature needs to be enabled in the preferences for
 Wanderer. It's no v51 version, because Eastern doesn't
 work on Aros yet, but you can install DefIcons v44+ by
 Stephan Rupprecht in WBstartup + ENVARC:deficons.prefs.
 Allow copying of deficons to ENV: again in the startup-
 sequence by commenting this out: ; PAT "~(def_#?.info)"
 Or instead you can add "Assign >NIL: ENV: ENVARC: ADD".
 The Aros icon.library has to be removed with RemLib by
 Thomas Rapp somewhere above SetPatch. Other tools can't
 be used on Aros 68k anymore. FastMem is set by default.


 My experimental FastWB version tries to achieve a more
 responsive and faster icon dragging and refresh on the
 Workbench 3.1.4/3.5/3.9 for slower Amigas. This is not
 a 100 % perfect solution, because it still can happen
 that some parts of the window where you selected icons
 for the dragging are not refreshed after their release,
 but that is no big problem, since you can still update
 the window from the WB menu. My WBfix already tries to
 take care for any window switching, scrolling, resizing
 and also has a timeout of about 1 second after the last
 icon movement in order to avoid later graphical damage
 by menus or requesters opening suddenly over the active
 window. Brings more speed together with HoldTCbuffer1.
 WB 3.2 should be more optimized and may not need a fix.    


 As a bonus there are 2 script based IconMixers included
 (using ProcessIcon) which can combine (True)ColorIcons
 with the planar images of MWB or old icons. The mixed
 icons will contain both image sets. One script retains
 the MWBIcon settings, the other one keeps the GlowIcon
 tooltypes. My option "Reduce8PlanesTo3" might be useful
 for getting correct looking MWB images without wasting
 space. Since PNG icons can't store planar images they
 have to be converted with "ConvertPNGtoOS4" in advance.
 Disable the options "DropPlanarImages" or "DropPlanar"
 in tools like RAWBInfo or CopyIcon. The mixed icons get
 damaged by AfA_OS, so don't use these IconMixers there.


 The new script ConvertToPngIcons in the bonus drawer
 can be used to convert all Amiga icons into the PNG
 format with optional scaling by using ImageConverter.
 The script can be executed directly or launched from
 a DropView app-icon or started by the WB tool-menu.
 Added the option "CRUSH" to my ConvertToPngIcon script,
 which will try to use PngCrush to optimize the PNG
 compression by trying out lots of different strategies.


 LD020 uses the older line by line direct drawing code,
 because sometimes that runs still faster than 68020.

 The HB020 version displays a HalfBright second image
 for TrueColor icons with one image, not a glow effect.

 The patches for workbench.library 45.127 and 45.131 to
 45.132 include some fixes, explained in the lha file.

Contact and Feedback

Contents | < Browse | Browse >



 If you have some problems with my icon.library, want
 to make any suggestions or discuss new features then
 you can send me an email to <pkeunecke@alice-dsl.net>

 or use my threads at A1k.org or English Amiga Board:

 http://www.a1k.org/forum/index.php?threads/27403/
 http://eab.abime.net/showthread.php?t=64079

 But I won't appear in any other forums, at Twitter, 
 Facebook, Reddit, in other social media or over IRC. 

 Your feedback is always welcome, because testing the
 library code to find the hidden bugs is very difficult.
 If nobody reports any issues, it can take years before
 I may stumble upon a rare bug by coincidence one day.

 Please, send a description of your system with infos
 about the ROM, OS and WB version, CPU, your screenmode,
 FBlit, P96, CGX, your startup-sequence and patches, the
 version of icon.library, the icon type and screenshots.

 Thanks a lot to all the Amiga users who have already
 sent bugreports or made suggestions for improvements!

 Important restrictions 

Contents | < Browse | Browse >



 It's not allowed to distribute or install the

 TrueColor versions of this icon.library with or

 on AmiKit X or XE or any other freeware distro

 or software package for more than 10 Euro. Any

 bundling with commercial products is prohibited!

 This applies to the Aros-, LD020 and all the v51

 versions. But you can still use the new 68000 or

 68020 versions, or any other versions of older

 releases up to Build #538 without restrictions.

 Rights & distribution 

Contents | < Browse | Browse >



 This program is freeware. I don't give any warranties.
 You are using this program on your own risk and you
 are responsible for any damage it could cause to your
 system. This icon.library is completely independent
 and free of the AmigaOS copyright. :)

 Read the restrictions for the distribution here, too!


 Copyright 2007-2025:

   Peter Keunecke

 Programmbeschreibung 

Contents | < Browse | Browse >



 Dies ist ein optimierter Ersatz für die icon.library 
 von AmigaOS 3.0-3.9 oder Aros 68k, die im Kickstart ROM
 existiert oder aus dem LIBS: Verzeichnis geladen wird.

 Diese Shared Library enthält die Funktionen zum Laden,
 Dekodieren, Anzeigen und Speichern von Piktogrammen und
 zum Verwalten von Einstellungen für die Ausführung der
 zugehörigen Programme durch Erfassen von Tooltypes, dem
 DefaultTool, der Stackgrösse, der Icon-Position und bei
 Verzeichnissen von Fensterdaten in den ".info"-Dateien. 

 Unterstützt werden alle alten planaren und MWB-Icons, 
 sowie palettenbasierte NewIcons oder OS 3.5 ColorIcons, 
 als auch OS4 oder PNG TrueColor-Icons und Aros Icons.  

 Alle Icons werden entweder per Blitter oder FBlit vom
 Amiga-Chipsatz oder mit P96 bzw CGX auf Grafikkarten in
 ihrer besten Qualität so schnell wie möglich angezeigt.

 Es gibt jetzt 5 Methoden, um Icon-Bilder darzustellen:

 1.) Planare Icons wählen direkt mit den Bitplane-Daten
     die Farbstifte und ihre aktuellen Bildschirmfarben.
     In planaren Icons sind keine Paletten gespeichert,
     deshalb benötigen sie verriegelte Bildschirmfarben.

 2.) NewIcons und ColorIcons verwenden Index-Bytes für
     jedes Pixel, die auf eine 24-Bit RGB-Palette zeigen
     und folglich auf 256 Farben pro Bild begrenzt sind.
     Eine davon kann zur Transparenzmaskierung verwendet
     werden. Die Farben werden der aktuellen Bildschirm-
     palette zugewiesen und die Chunky-Bytes der Bilder
     in Bitplanes konvertiert, was beides aufwendig ist.
     Diese Methode findet immer die am besten passenden
     Farben der Palette oder versucht, freie Farbstifte
     zu erhalten.

 3.) Auf Hi/TrueColor-Screens werden NewIcons und OS 3.5
     ColorIcons perfekt angezeigt, indem sie ihre 24-Bit
     RGB-Farben ohne Mapping an eine Grafikkarte senden.
     Dies geht wesentlich schneller als die 2. Methode
     und läßt auch mehr Farbstifte für Anwendungen frei.

  :( Leider benötigt die WB Icon-Zieh-Routine immer noch
     die herkömmlichen Bitplanes der ausgewählten Icons.
  :) Für schnelleres Laden werden die Farbreduktion, das
     Mapping und C2P verzögert, bis die Auswahl erfolgt. 

 4.) OS4, PNG und Aros Icons verwenden TrueColor Bilder
     mit 24-Bit Farbdaten und einem Alphakanal Byte für
     eine weiche Überblendung vom Rand zum Hintergrund.
     Grafikkarten können diese Icons perfekt angezeigen,
     aber auf 8-Bit und planaren Screens benötigen sie
     erst eine zeitaufwendige Farbreduzierung in OS 3.5
     Farben, gefolgt vom Mapping und der C2P-Umwandlung.

 5.) Auf HAM-Bildschirmen werden palettenbasierte Icons
     in ARGB-Bilder konvertiert wie bei OS4 und PNG und
     dann wird entweder eine der 16 oder 64 Grundfarben
     verwendet oder zwei Farbkomponenten des vorherigen
     Pixels gehalten und die mit der größten Abweichung
     wird aktualisiert. Auf normalen Amiga-Bildschirmen
     können HAM-Bilder viel mehr unterschiedliche Farben
     verwenden als beim ColorMapping. Aber der Chipsatz
     ist leider doch zu langsam, um mit HAM zu arbeiten.

Voraussetzungen

Contents | < Browse | Browse >



 Ok, die wichtigste erforderliche Qualifikation zuerst:

 Das System braucht einen Benutzer, der versteht, wie's
 funktioniert und was er bewirkt, wenn er es verändert.
 Keinen, der nur den Feuerknopf seines Joysticks kennt.

 Man bat mich zu erwähnen, dass die Namens_Erweiterung 
 der Library beim Kopieren nach Libs: zu entfernen ist.
 Ja natürlich, manchmal muss man sein Gehirn benutzen. 

 Für erfahrene Benutzer von Amiga OS 3.x und Aros 68k: 

 Diese icon.library läuft auf allen echten Amigas, auf
 Minimig, Vampire, Amithlon und Emulatoren wie WinUAE.

 Sie arbeitet mit jeder 680x0 CPU und braucht keine FPU
 oder MMU. Sie zeigt auf jedem Bildschirm alle Icons an.

 Die 68000-Version ist nur für schnelle Systeme wie den 
 Minimig geeignet, ein Amiga mit 7 MHz ist zu langsam !
 Das schnellste, was Du mit lahmen Amigas machen kannst:
 "Schmeiß sie weg!"...oder kaufe einen Beschleuniger ;)

 Wenn man wirklich etwas besseres nutzen möchte als nur 
 4-farbige oder MWB-Icons, braucht man eine CPU >30 MHz. 

 Planare Icons kann die icon.library nie beschleunigen,
 weil keine Dekomprimierung und Farbzuordnung nötig ist.
 
 Man sollte eine schnelle Festplatte, viel FastMem und 
 eine Grafikkarte besitzen, um mehr Spaß zu haben, aber 
 das ist nicht unbedingt erforderlich.

 Diese Library funktioniert mit jeder Workbench ab v39,
 Wanderer (Aros-Version) und AfA_OS, DOpus5 oder Scalos.

 Auf einigen Systemen muss man die icon.library, die aus
 dem Kickstart-ROM geladen wird, mit Tools wie SetPatch
 v44 oder RemLib, LoadResident oder LoadModule ersetzen.

 Es werden nur PNG Bilder mit RGB oder RGBA unterstützt. 
 Nur diese beiden Formate werden dekodiert, aber keine 
 Graustufen, Interlaced oder Paletten-basierten Bilder. 
 Nur IHDR, IDAT, icOn und IEND werden ausgewertet, alle
 anderen PNG-Chunks werden übersprungen und ignoriert.
 Falsche Bildformate führen zur Anzeige von Ersatzicons.

Eigenschaften

Contents | < Browse | Browse >



 Diese icon.library kann alle Arten von Icons anzeigen:
 vier-farbig, MWB, OS 3.5, OS4, PNG, Aros und NewIcons.

 Sie unterstützt alle 680x0 Systeme mit OS 3.0-3.9 oder
 Aros und native Bildschirmmodi oder auch Grafikkarten.

 Diese Library wurde komplett in optimiertem Assembler
 Code geschrieben, der IconBeFast v2 schon beinhaltet.
 Sie ist kleiner als das Original und arbeitet deutlich
 schneller, vorausgesetzt, mein IconBeFast-Patch wurde
 nicht bereits installiert, zB. mittels SystemPatch v3.

 Aber diese Library hat mehr Verbesserungen als nur die
 schnellere Farbzuweisung. Sie kann auch die Dekodierung
 des 2. Bildes verzögern, bis ein Icon ausgewählt wird.

 Es wird kein ChipMem für Workbench Icons verschwendet,
 wenn man Prefs/Workbench auf "Anderen Speicher" setzt
 oder den Befehl WBCTRL IMT=ICONFAST vor LoadWB aufruft.
 OS 3.1.4/3.2 braucht diese Speichereinstellungen nicht.

 Ein Cache für die Bildschirm-Palette wird beim WB-Start
 erstellt und nur aktualisiert, wenn sich die Anzahl der
 gemeinsam genutzten Farbstifte danach geändert hat.

 Ein weiterer optionaler Cache mit einem Würfel von 512
 "FastColors" erlaubt es, die beste Farbe zu berechnen.
 Diese Optimierung ist bei RTG Screens immer aktiviert,
 denn dann braucht man diese Farben nur zum Icon-Ziehen. 

 Eine zlib Inflate Routine dient zum Dekomprimieren von
 OS4 und PNG Bildern. Die interne Farbreduktion basiert
 auf 15 Bits Genauigkeit für die ersten 128 Farben, bis
 die Palette mit weniger Bits nach der passenden Farbe
 durchsucht wird oder bevor eine weitere erstellt wird.
 Eine Palettenbelegungstabelle vermeidet bis zu ca. 200
 Scans und spart Zeit. Ein schnelles Dithering ändert
 die Helligkeit der Pixel abwechselnd um +2 oder -2 und
 verwendet ein Schachbrettmuster für die Farbmischungen.

 Diese Library kann OS4 und PNG Icons auf allen nativen
 Amiga-Bildschirmen mit der normalen palettenbasierten
 Farbzuweisung darstellen. Zwei Alphakanal-Level werden
 durch eine Mischung mit 25% oder 50% Grau dargestellt,
 um weichere Abstufungen an den Rändern zu erhalten, da
 der Blitter nur einfache Transparenzmasken unterstützt.

 WB:Icon->Info und das Abspeichern von TrueColor-Icons
 konvertiert sie in das OS 3.5 Format bei beiden 680x0
 Versionen. Die 68020 Version zeigt einen Requester für
 den Fall an, dass TrueColor Icons direkt von ColorIcons
 ersetzt werden würden. Das kann für ein einzelnes Icon
 erlaubt oder verhindert werden, für Ordner oder immer.
 Die OS 3.5-Konvertierung hat den Vorteil, dass kleinere
 Dateien entstehen und das Anzeigen viel schneller geht,
 obwohl die geringere Qualität oft kaum zu erkennen ist.

 Schlechte planare Bilder in OS 3.5 und OS4 Icons werden
 automatisch durch interne Icons ersetzt, falls sie zu
 winzig sind oder mehr als drei Bitplanes besitzen.

 TrueColor Icons mit nur einem Bild erhalten automatisch
 ein dunkleres 2. Bild mit einem einfachen Glüheffekt.

 Bei Hi/TrueColor Bildschirmen ist direktes RGB Zeichnen
 auf den Grafikkarten viel schneller als Farbzuweisungen
 mittels Bildschirm-Palette und bietet HiColor-Qualität
 oder sogar die perfekte Icon Darstellung. Die TrueColor
 Versionen, wie TC020, unterstützen auch weiche Ränder
 durch eine Alphakanalüberblendung über dem Hintergrund.
 Nur die 68000 Version bietet kein direktes Zeichnen an,
 weil es keine Grafikkarten oder Treiber dafür gibt.

 DefIcons werden als Geisterbilder mit 50 % Transparenz
 dargestellt. Wer diese Funktion nicht mag, kann sie mit
 "IconGhostingOff" global abschalten oder den Tooltype-
 Eintrag "NoGhost" gezielt bei den DefIcons hinzufügen.

 Das Ram Disk Icon wird automatisch synchronisiert mit
 def_Ram.info in ENV:Sys und ENVARC:Sys und man benötigt
 kein Copy oder MakeLink mehr zur RAM:Disk.info Datei.

 Icon Labels mit Outline oder Shadow Text sind möglich.

 Die Paletten-Optimierungsroutine für das Icon-Speichern
 wurde hinzugefügt. Sie ist immer aktiviert, unabhängig
 von den Optionseinstellungen und baut die Farbtabellen
 von Grund auf neu, schließt darin die möglichen Lücken
 und vermeidet mehrere Einträge mit gleichen RGB-Werten.
 Icon-Bilder werden jetzt immer komprimiert, aber die
 RGB-Farbtabellen werden nur kopiert. Das ist schneller.

 Der optimierte RLE-Decoder behandelt 8 Bitplanes extra.
 Die Dekodierung des 2. Bildes erfolgt jetzt bei Bedarf.

 Ab 3.1.4 wird BumpRevisionLength() unterstützt, um das
 Icon-Kopieren mit langen Dateinamen zu ermöglichen. Es
 funktionierte auch mit WB v45.132 und WBCTRL MNL=102.

 Alle v51 Versionen können die Eastern Preview Icons in
 TrueColor anzeigen. Das Abspeichern als OS4 Icons ist
 ebenfalls möglich, wenn zlib.library v3.2 installiert
 ist, sonst als ColorIcons. Die beste Skalierung bietet
 der OS 3.9 picture.datatype v45.17.

 Diese icon.library hat Unterstützung für DOpus5, AfA_OS
 und eine Aros 68k Version mit Anpassungen für Wanderer.

 Dateitypen können von DefIcons v47 identifiziert werden
 oder auch vom Datatype-System, um Ersatzicons zu laden.

 "Tricky Drag°n" erlaubt das Icon-Ziehen mit RGB-Farben
 und weichen Alpha-Kanal Übergängen an den Rändern mit
 P96 auf Workbench 3.0-3.9 für OS4 und PNG Icons und RGB
 für palettenbasierte OS 3.5 und NewIcons. Dieser neue
 Gfx-Patch Hack sollte auch mit P96 v3.x funktionieren,
 aber ich kann es nicht selbst testen, da ich v2 nutze.

 "Tricky Drag°n" funktioniert jetzt auch mit DOpus 5.x
 auf P96 RTG Screens ohne die "speziellen Ziehroutinen",
 sogar mit DOpus 5.9x, aber nicht unter Aros oder CGX4.

 Um die Datenmenge zu reduzieren, die zwischen der CPU
 und der Grafikkarte über den langsamen Zorro-Bus über-
 tragen werden muss, werden die Rechtecke der TrueColor
 Bilder soweit wie möglich verkleinert, indem die fast
 100 % transparenten Bereiche am Rand entfernt werden,
 wo Alpha 0-2 ist. Dies gab es für ColorIcons bereits.
 Die Rechtecke der ersten Icon-Bilder (nicht selektiert)
 können um 20-40% verkleinert werden, die 2. nur < 5%,
 weil der Glow-Effekt den meisten freien Platz abdeckt.

 Eine kleine Beschleunigung (2-8%) auf Chunky Screens
 für Icons mit 64 oder mehr Farben und nur bei WB v44+
 durch Nutzung der CGX WritePixelArray() Funktion und
 dem LUT8 Format ohne C2P Konvertierung oder Masken.
 Es betrifft nur unselektierte Icons, keine DefIcons.

 IconControlA() unterstützt nun die GetARGBImageData1
 und GetARGBImageData2 Tags der Aros API und die Tags
 GetImageData1/2 mit SetImageDataFormat=2 der OS4 API,
 um TrueColor-Bilder mit Alphakanal zu extrahieren.

 Library Versionen 

Contents | < Browse | Browse >



 Die 68000 Version verwendet immer die palettenbasierte
 Farbzuweisung für alle NewIcons, ColorIcons, OS4 und
 PNG Icons. Sie hat keine Unterstützung für das direkte
 Zeichnen auf Grafikkarten und auch keine Optimierung
 oder spezielle Behandlung für Programme, die erst auf
 einem System mit 68020+ CPU installiert werden können.

 Die 68000 und 68020 Versionen zeigen OS4 und PNG Icons
 immer nach einer Farbreduktion in das OS 3.5 Format mit
 maximal 255 Farben und mit einfacher Transparenzmaske,
 auch auf Hi/TrueColor Bildschirmen. Beim Speichern der
 konvertierten Icons im OS 3.5 Format werden sie kleiner
 und können danach schneller geladen werden als zuvor.

 OS 3.2 akzeptiert v46 nicht mehr, aber TC020 geht noch. 

 Die 68020 Version ist wahrscheinlich die beste Wahl für
 langsame Amigas und sie hat bereits Unterstützung für
 direktes Zeichnen auf Grafikkarten. Auf Hi/TrueColor
 Bildschirmen zeigt sie alle ColorIcons perfekt an, nur
 OS4 und PNG Icons in etwas schlechterer Qualität, aber
 mit weniger Speicher als TC020. Nach dem Speichern von
 TrueColor Icons im OS 3.5 Format können sie dann viel
 schneller geladen werden als die originalen Icons.

 Die TC020 Version kann die OS4 und PNG Icons in bester
 TrueColor Qualität und dank Alphakanalüberblendung mit 
 weichen Rändern auf Grafikkarten darstellen. Dies kann
 sehr schnell und ohne eine zeitraubende Farbreduktion
 geschehen, benötigt aber mehr Speicher, um zusätzlich
 die komprimierten ARGB Bilder zu halten. Das Speichern
 und Kopieren der Icons erfolgt in ihrem ursprünglichen
 Format. TC020 besitzt zusätzliche ARGB Puffer für ein
 schnelleres Anzeigen. Außerdem unterstützt TC020 8-Bit
 und native Bildschirme durch eine Farbreduktion in der
 gleichen Weise wie die 68020 Version.

 PNG Icons können in das OS4 Format konvertiert werden,
 was sie etwa 15% größer macht, aber 30% schneller lädt.
 Wer aus irgendeinem Grund ColorIcons speichern möchte, 
 kann immer noch den Befehl ConvertTrueColor verwenden, 
 bevor sie anzeigt werden. Dies wirkt wie ein Downgrade
 zum 68020 Modus. PreserveTrueColor schaltet zurück in
 den TC020 Modus. Die v51 Libraries können die Vorschau-
 bilder-Icons von Eastern auch in TrueColor anzeigen.


 Im Bonus Ordner findet man einige spezielle Versionen: 

 Eine experimentelle FastWB Version versucht das Ziehen
 und Ablegen von Icons auf der WB v44-v45 schneller zu
 machen und die extrem vielen unnötigen Refreshes in den
 Fenstern so weit wie möglich zu ignorieren. Dies ist
 keine 100 % perfekte Lösung, denn es kann immer noch
 vorkommen, dass einige Teile des Fensters, in dem man
 die Icons auswählt, nach dem Ziehen nicht aktualisiert
 werden, aber das ist kein großes Problem, denn man kann
 die Fensterinhalte immer noch im WB-Menü aktualisieren.
 Mein Fix versucht bereits, Fensterwechsel, Scrollen und
 Größenänderung zu berücksichtigen und hat außerdem ein
 1 Sekunden Timeout nach der letzten Icon Bewegung, um
 eine spätere grafische Beschädigung zu vermeiden, etwa
 durch plötzlich sich über dem aktiven Fenster öffnende
 Menüs oder Requester. Einfach mal testen und eventuelle
 Probleme melden oder das flüssigere Handling geniessen. 
 Zusammen mit HoldTCbuffer1 ergibt es optimale Leistung. 

 Die Aros 68k Version ist ziemlich identisch mit TC020,
 hat aber zusätzlich noch Unterstützung für Wanderer, um
 mittels Alphakanal Daten den Hintergrund transparent zu
 machen. Diese Funktion muss in den Voreinstellungen für
 Wanderer aktiviert werden. Es ist kein v51, denn bisher
 funktioniert Eastern noch nicht auf Aros 68k, aber man
 kann DefIcons v44+ von Stephan Rupprecht nach WBstartup
 kopieren und zusätzlich ENVARC:deficons.prefs kopieren.

 Die LD020 Version verwendet eine ältere zeilenbasierte
 Routine zum direkten Zeichen, die manchmal immer noch
 schneller ist, um die RGB Farben von ColorIcons direkt
 auf einem Grafikkarten RTG Bildschirm darzustellen.

 Die HB020 Version zeigt ein zweites halbhelles Bild bei
 TrueColor Icons mit nur einem Bild, keinen Glow-Effekt. 

 Die 68020-basierte Version "Smurf" vermeidet es, auf
 den Farbstift 0 zu mappen, damit bei Verwendung eines
 CopperDemons keine Farbverläufe in Icons durchscheinen.
 "Smurf" hat keinen OS 3.2 Support, Datatype Erkennung,
 noch Optionen für IconUp/DownScaling oder Graustufen.

 Die HAM6 und HAM8 Versionen basieren auf TC020, können
 aber NewIcons, ColorIcons, OS4 und PNG Icons nativ auf
 dem AGA Chipset mit viel mehr verschiedenen HAM-Farben
 anzeigen. Das macht auf OCS/ECS wenig Sinn. Leider ist
 der Amiga zu langsam, um HAM WBs tatsächlich zu nutzen.

 Letzte Änderungen 

Contents | < Browse | Browse >



 Build #592 (2024/12/31): 

 Bei planaren Icons mit nur einem Bild und aktiviertem
 "Backfill" Modus wird die Transparenzmaske nun wieder
 mit Flood() nur von Rand-Pixeln mit Farbe 0 erstellt.
 Alle anderen Pixel mit Farbe 0 bleiben jetzt grau.

 #592: Ein unkritischer Fehler in #591 wurde behoben,
 wo der Open-Count der CGX-Library bei jedem Open der
 IconLib erhöht wurde, da Tests alte Offsets prüften.

 Der MakePlanarMask Code wurde optimiert und braucht
 nun keine ReadPixel()-Calls mehr und nur ein Flood(),
 um von einem temporären Rand alle transparenten Pixel
 zu erreichen. Der Code ist kürzer und 8-9% schneller.
 Aktuelle 68000 und 68020 Libraries sind jetzt dabei.

 Leider wird WB 3.0/3.1 niemals Blitter-Masken nutzen.


 Es gibt noch eine weitere neue Version "BWswap", bei
 der mittels "BWswappingOnOff" die Farbstifte 1 und 2
 vertauscht werden können, um in einem Dark Theme die
 Farben Schwarz und Weiß zwangsweise zu wechseln, denn
 bei einigen Programmen können die Farben nicht vom
 Anwender konfiguriert werden, wie in den Preferences
 für Palette und Fonts mit entsprechnden Zuweisungen.
 Sagt mir eure Meinung, ob ich dies integrieren soll?

 Bezugsquellen 

Contents | < Browse | Browse >



 Das komplette icon.library Paket findet man unter: 
 http://aminet.net/package/util/libs/IconLib_46.4

 Updates, Bugfixes, Testversionen und IconDemoADFs: 
 http://eab.abime.net/showthread.php?t=64079

 Weitere nützliche Programme im Aminet sind:  
 http://aminet.net/package/gfx/misc/pngcrush-m68k
 http://aminet.net/package/util/app/dropview
 http://aminet.net/package/util/boot/FBlit
 http://aminet.net/package/util/boot/LoadModule
 http://aminet.net/package/util/boot/RemAPollo
 http://aminet.net/package/util/libs/zlib-library
 http://aminet.net/package/util/misc/ReportPlus
 http://aminet.net/package/util/wb/AutoUpdateWB
 http://aminet.net/package/util/wb/CopyIcon44
 http://aminet.net/package/util/wb/DefIcons44
 http://aminet.net/package/util/wb/Eastern
 http://aminet.net/package/util/wb/FullPalette22
 http://aminet.net/package/util/wb/image2icon
 http://aminet.net/package/util/wb/i2iGUI-V2
 http://aminet.net/package/util/wb/KDEView
 http://aminet.net/package/util/wb/MUIScrMode1_5
 http://aminet.net/package/util/wb/NewIcons46
 http://aminet.net/package/util/wb/ProcessIcon
 http://aminet.net/package/util/wb/SwazInfo18b 

 Monitortreiber für hohe Auflösungen (für HAM6/8): 
 http://aminet.net/package/driver/moni/HighGFXnmore

 Sehr nützlich für Icons ist auch ImageConverter: 
 https://sourceforge.net/p/amega1/code/HEAD/tree/Sources/Tools/ImageConverter

 Icon Pakete:
 http://aminet.net/pix/gicon
 http://aminet.net/pix/icon
 http://aminet.net/pix/mwb
 http://aminet.net/pix/nicon
 http://aminet.net/pix/picon
 http://www.masonicons.de
 http://www.five-star.com/kens_icons/icons.htm
 http://www.amiga-look.org/category/glowicons
 http://www.intuitionbase.com/customisation.php?category=icons
 http://os4depot.net/index.php?function=browse&cat=graphics/icon

 Icon Strukturen:
 http://krashan.ppa.pl/articles/amigaicons
 http://www.evillabs.net/wiki/index.php/Amiga_Icon_Formats

 Installation 

Contents | < Browse | Browse >



 Die Installation hängt von vielen Dingen ab: CPU, ROM,
 OS und WB Version, Speicher, Grafik, Leistung, Patches. 

 Bei 68020+ Systemen mit einer workbench.library v44+ 
 reicht meistens schon 'copy libs/icon.library to LIBS:'.

 Als libs/icon.library wird jetzt die v51 TC020 Version
 vorgegeben, die auf ALLEN Systemen mit 68020+ benutzt
 werden kann. Nein, man braucht dafür keine Grafikkarte,
 obwohl sie volle Unterstützung für TrueColor Icons und
 Bildschirme in bester Qualität bietet. Natürlich kann
 man sie auch auf allen nativen Amiga Screens verwenden
 und benötigt dazu trotzdem keinen P96 oder CGX Treiber. 

 Als TC020-Alternative gibt es noch die FastWB Version,
 die viele redundante Refreshes von WB v44/45 ignoriert.

 Immer die Erweiterung entfernen und P_RW_D Flags setzen.

 Für lange Dateinamen die Workbench Preferences anpassen. 

 OS 3.2 benötigt mindestens eine icon.library v47, daher
 läßt sich nur noch v47 oder v51 auf OS 3.2 installieren,
 aber man kann immer noch ConvertTrueColor aufrufen, wenn
 man lieber schnellere 3.5 ColorIcons erstellen möchte.
 Optimal ist TC020 = libs/icon.library, HB020 bei Bedarf.
 Die 68020 Version ist zu alt und wird nicht akzeptiert.
 FastWB wird nicht benötigt, WB v47 ist schon schneller.

 Die meisten 68000 Amigas sind viel zu langsam, um einen
 Vorteil bei Verwendung der 68000/icon.library zu haben,
 man kann nicht einmal Icons ins FastMem laden. P96, CGX
 und FBlit benötigen 68020 CPUs. Meine 68000 Version ist
 für viel schnellere Systeme gedacht, z.B. den Minimig.

 Bei OS 3.0/3.1 Systemen ist es erforderlich, die alte
 Rom icon.library aus der Liste der residenten Module zu
 entfernen, bevor die neue icon.library aus Libs: geladen
 werden kann. Ich würde empfehlen, RemLib von Thomas Rapp
 oder SetPatch v44 zu verwenden, da diese keine Reboots
 verursachen. In gleicher Weise kann man auch die alte
 Workbench ersetzen. Eine neue WB v44+ hat viele Vorteile
 für alte 3.1 Systeme. SetPatch v44 aktualisiert beide
 ohne zusätzliche Tools. Ansonsten vor SetPatch einfügen:

 If EXISTS Libs:icon.library
    RemLib >NIL: icon.library
    If EXISTS Libs:workbench.library
       RemLib >NIL: workbench.library
    EndIf
 EndIf

 Alternativ ist es möglich, beide Libs resident zu laden,
 aber diese Methoden erfordern einen Reboot des Systems.
 Dies kann mittels LoadResident, LoadModule oder BlizKick 
 erreicht werden. - Oder man kann sein eigenes Rom bauen.
 Zum Beispiel diese Zeilen vor SetPatch (<v44) einfügen:

 Version >NIL: icon.library 46
 If WARN
    If EXISTS LIBS:workbench.library
       LoadResident >NIL: LIBS:workbench.library
    EndIf
 LoadResident >NIL: LIBS:icon.library REBOOT
 EndIf

 OS 3.0/3.1 hat bei der workbench.library v39-40 nur die
 Einschränkung, für palettenbasierte Icons nach einem
 Wechsel des Screenmodes die Farben nie zu korrigieren.
 Dafür kann jetzt mein RefreshIcons Tool benutzt werden.

 Man sollte auch SwazInfo installieren, um IconInfo zu
 ersetzen. Wenn der Installer fehlschlägt, dann manuell.

 Der NewIcons Patch erlaubt bei 3.1 einen transparenten
 Hintergrund für die Icon Bilder und liefert DefIcons !  

 Ich habe einige Demo-Disketten Images für OS 3.0/3.1
 erstellt, um zu zeigen, wie man das installieren kann:
 IconDemoADF http://eab.abime.net/showthread.php?t=64079

 Die Envarc:FBlit.cfg für WB 3.1 und auch für WB 3.1.4+
 werden mitgeliefert. Es hängt von der workbench.library
 Version (v39-40 oder v44+) ab, welche Konfiguration für
 FBlit benötigt wird. FastMem wird automatisch verwendet,
 sofern FBlit beim Booten erkannt wurde.

 FBlit nie zusammen mit P96 oder CGX Treibern verwenden!

 Auf Systemen mit P96 oder CGX sollte man FastMem für
 Icon-Bilder aktivieren. Bei OS 3.9 Prefs/Workbench auf
 "anderer Speicher" setzen oder bei 3.5 mit dem Befehl
 "WBCtrl IMT=ICONFAST" vor LoadWB aktivieren, für WB 3.1
 kann man auch meinen Befehl "IconsToFastMem" verwenden.
 OS 3.1.4-3.2 aktiviert das FastMem automatisch für RTG.  

 Eine alternative CPU Version der icon.library kann in
 einem Unterverzeichnis von LIBS: installiert werden für
 den Fall, dass noch keine Library resident geladen war.
 Wenn LIBS:icon.library die 68000 Version ist, kann man
 eine 020-er Version als LIBS:68020/icon.library ablegen.
 Oder wenn LIBS:icon.library für den für den 68020+ ist,
 kann man eine Alternative als LIBS:68000/icon.library 
 hinzufügen. Die richtige Version wird dann automatisch
 geladen. Dies funktioniert mit SetPatch v44 oder RemLib 
 von Thomas Rapp, aber nicht mit LoadResident, BlizKick,
 LoadModule oder bei einer residenten icon.library.

 .

 Konfiguration 

Contents | < Browse | Browse >



 Optionale Befehle, die man vor LoadWB aufgerufen kann: 
 ______________________________________________________ 

 AllFramesOn1/2/3 und AllFramesOff sind für Systeme mit
 WB v44+ auf OS v39-44. Die Zahl am Ende (1-3) bestimmt
 die Rahmengröße. Einige ColorIcons werden jedoch keine
 Rahmen erhalten, wenn sie ein internes Frameless-Flag
 gesetzt haben, was nur mit dem OS 3.9 IconEdit und dem
 Icon-Modul von Report+ geändert werden kann. Bei WB 3.1
 kann man den NewIcons Patch verwenden, um transparente
 Rahmen zu aktivieren. Bei der WB v45+ befinden sich die
 Rahmeneinstellungen schon in den Workbench Preferences.    
 
 PlanarFrames1/2/3 kann auf WB v44+ verwendet werden, um
 die Rahmen ausschließlich für die alten 4-color und MWB 
 Icons zu aktivieren, aber nie für True/ColorIcons oder
 NewIcons. Das Ändern der Rahmen in Prefs/Workbench ist
 weiterhin möglich. Nach dem Aufruf von PlanarFrames1-3
 bleiben True/ColorIcons und NewIcons *immer* rahmenlos.
  
 Eine schnellere Farbzuweisung kann optional aktiviert
 werden, indem man die Icon Qualität in Prefs/Workbench 
 auf schlecht setzt. Bei WB v39-44 ist das auch mit dem
 Befehl FastColors möglich. Dann dienen 512 RGB Farben
 eines Farbspeicher-Würfels zur direkten Farbberechnung.
 Diese Option ist auf langsameren Amigas zu empfehlen.
 Bei verriegelten Farben ändert sich die Qualität nicht.

 IconsToFastMem ist für Amigas mit Grafikkarten gedacht,
 um die Icons schneller zu laden und ChipMem zu sparen,
 wenn man kein anderes Programm wie Prefs/Workbench oder
 WBCtrl dafür nutzen kann. Es wird manchmal für WB 3.1 
 benötigt, aber nicht für FBlit. Seit OS 3.1.4-3.2 wird
 der Speichertyp vollkommen automatisch eingestellt.
 
 IconsTo24BitDmaMem kann verwendet werden, um mehr vom
 schnelleren 32-Bit FastMem für Anwendungen zu behalten.
 Mit dieser Option wird die Icon Anzeige aber langsamer.

 IconGhostingOff schaltet die Transparenz von DefIcons
 global aus, falls jemand Angst vor Geisterbildern hat.
 
 GrayscaleOnOff kann verwendet werden, um Icons nur in
 Grautönen statt in Farben anzuzeigen. Man kann es dann
 in Prefs/Workbench aktivieren, indem man die Qualität 
 dort auf schlecht setzt. Die WB v39-44 benötigt beides:
 die Befehle GrayscaleOnOff und FastColors vor LoadWB.
 Diese Option wird nur in der 68020 Version unterstützt.
 
 OutlineIconText und ShadowIconText optimieren den Stil
 des Icon Label-Textes. Zur Farbwahl dient Prefs/Fonts, 
 wo man eine Textfarbe und eine Hintergrundfarbe wählt,
 aber danach in den "Nur Text" Modus zurück schaltet,
 bevor man seine Einstellungen abspeichert. Bei OS 3.2
 erscheinen diese Label-Textmodi bereits in Prefs/Fonts.
 
 Nach dem Aktivieren von Outline- oder Shadowtext oder
 Graustufen zur Laufzeit bitte mit WB-Reset auffrischen.

 FileType ist mein Testprogramm für die Identifikation
 des Dateityps im OS 3.2 DefIcons Tool. Für Experimente.

 KillPlanarImages und KeepPlanarImages ändern die Weise,
 wie planare Bilder in OS 3.5 und OS4 Icons zu behandeln
 sind. Ohne eine Option werden planare Bilder mit mehr
 als 8 Farben oder einer Breite von weniger als 8 Pixeln
 durch interne 4-color Icons ersetzt. KillPlanarImages
 ersetzt alles. KeepPlanarImages verschont Falschfarben.
 Mit KillPlanarImages kann man die Dateigröße reduzieren 
 und Speicherverschwendung für die oft nutzlosen Bilder 
 vermeiden. Falls die Icons ins ChipMem geladen werden,
 ersetzt nur ein schwarzer Punkt die planaren Bilder. Um
 es zu testen, ColorIcons in Prefs/Workbench abschalten.

 Reduce8PlanesTo3 kann benutzt werden, um falschfarbige
 MWB Icons mit 8 Bitplanes zur Verwendung der Farben 0-7
 und 3 Bitplanes zu konvertieren. Es ist als Alternative
 zu den vorherigen Optionen gedacht.  

 FakeIconSizeForAfA kompensiert das Problem, dass AfA_OS
 mit unterschiedlichen Größen der internen Ersatzbilder
 im Vergleich zu den größeren OS 3.5 oder OS4 Icons hat.
 Ein Fix nur für AfA, der auf WB 3.1 Platz verschwendet.

 ConvertTrueColor kann bei den TrueColor Versionen dafür
 verwendet werden, um OS4 und PNG Icons trotzdem in das
 kleinere und schnellere OS 3.5 Format mit 255 Farben zu
 konvertieren. Natürlich muss man die Icons abspeichern,
 damit es wirkt. PreserveTrueColor schaltet dann zurück.

 ConvertPNGtoOS4 macht PNG Icons etwa 15 % größer, aber
 das Laden der OS4 Icons geht etwa 30 % schneller. Dafür
 muss aber die zlib.library v3.2 schon installiert sein.
 Nur TrueColor Versionen unterstützen die Konvertierung.

 HoldTCbuffer1 macht das Fenster-Resizing, Scrollen und
 das langsame Icon-Ziehen bei TrueColor etwas flüssiger,
 aber bei höherem Speicherverbrauch. Der gesamte Puffer
 wird dann erst beim Schließen des Fensters freigegeben.
 Dies funktioniert nur mit TrueColor Versionen auf RTG.


 Neue WB 3.1 Optionen "DropNewIcons", "KeepNewIcons"
 und "DropColorIcons", "KeepColorIcons" hinzugefügt.

 Diese globalen Optionen arbeiten ähnlich wie die v45+
 Schalter "Keine NewIcons" und "Keine Farbpiktogramme"
 in den Workbench Preferences. Ich habe sie für einen
 Anwender geschrieben, der die NewIcon- und ColorIcon-
 Bilder loswerden wollte. Nur unter WB 3.0/3.1 werden
 diese Optionen beim Abspeichern die Bilder entfernen.

 DropNewIcons entfernt die Bilder aus den Tooltypes,
 sobald man die angzeigten planaren Icons abspeichert.
 Dies geht durch Selektieren von (mehreren) Icons im
 Fenster und dem Fixieren, solange die Positionen noch
 nicht verändert wurden; oder mit SwazInfo speichern.

 DropColorIcons kann alle chunky und ARGB Bilder von
 den Icons (auch NewIcons) beim Abspeichern entfernen.
 Nur die alten planaren und MWB Bilder bleiben übrig.


 DOnoColorMapping war für DOpus5 TrueColor Bildschirme 
 und funktionierte nur zusammen mit der Icon Einstellung
 "Use Custom Drag Routines", um langsame Farbzuweisungen
 zu vermeiden, höhere Geschwindigkeit und eine bessere
 Qualität zu erzielen. Für optimale Leistung sollte man
 zusätzlich HoldTCbuffer1 verwenden. Es wird empfohlen, 
 meine gepatchte Version DOpus 5.83 zu installieren, in 
 der ein großes Speicherleck im Dragging behoben wurde. 

 "DOnoColorMapping" ist bei den TrueColor Versionen nun
 immer aktiviert, so dass die Option mit "Tricky Drag°n" 
 jetzt überflüssig wird, bis auf die alte 68020 Version.


 IconUpScaling und IconDownScaling, nur für die Version
 68020 verfügbar, kann man als Shell-Befehl zur Laufzeit
 verwenden, um die Icon-Bilder auf 150 % Breite und Höhe
 zu vergrößern oder auf 66 % zu verkleinern. Dies geht
 bei allen PNG, OS 3.5-4 Icons, aber nicht mit NewIcons,
 alten 4-color und MWB Icons. NewIcons vorher umwandeln.
 Ein 2. Aufruf der Befehle schaltet die Skalierung aus.
 Es mag etwas verwirrend sein, wenn man skalierte Icons
 abspeichert, denn sie werden dadurch aktualisiert und
 erscheinen sofort als doppelt skalierte Icons! Einfach
 die Skalierung ausschalten, nachdem der Schreibvorgang
 abgeschlossen wurde und dann das Fenster aktualisieren.
 
 InvertGhostingMask ist ein optionaler Fix, den man nur
 installieren sollte, wenn die DefIcons beim Verschieben 
 unsichtbar werden. Niemals ohne diesen Fehler benutzen!

 Drittanbieter Tools 

Contents | < Browse | Browse >



 Bitte immer zuerst die originale Dokumentation lesen! 
 Für neue und vollständige Pakete die Downloads nutzen.

 AutoUpdateWB von Elena Novaretti, Massimo Tantignone.
 Mit diesem kleinen Patch kann die Workbench den Inhalt
 eines Fensters automatisch aktualisieren, wenn Dateien
 in dessen zugehörigem Verzeichnis erstellt, umbenannt
 oder gelöscht werden, außer durch die Workbench selbst.
 Version v37.0 (29.3.2012) ist mein Patch für alte WBs.

 CopyIcon von Stephan Rupprecht kann verwendet werden,
 um die Icon-Bilder von einem Icon auf ein anderes zu
 kopieren. Dabei überschreibt es keine der bestehenden
 Einstellungen oder Tooltypes. Es wurde so modifiziert,
 dass es auch noch auf 68000 und WB 3.0+ funktioniert.

 FBlit von Stephen Brookes ermöglicht es, Bilder in das
 FastMem zu laden und Blitteraufrufe durch schnellere
 CPU-Routinen zu ersetzen. Das senkt den ChipMem-Bedarf.
 Es liegen zwei FBlit.cfg Dateien bei, eine für alte
 workbench.libraries v39/40 und die andere für WB v44+.
 Der Nutzer ist für die korrekte Installation von FBlit,
 fblit.library, FBlitGUI und FBlit.cfg verantwortlich.
 Es sollte niemals gleichzeitig mit P96 oder CGX laufen. 

 FullPalette und FPPrefs von Massimo Tantignone können
 verwendet werden, um Farben der Bildschirm-Palette zu
 setzen und zu sperren. Auf einigen Systemen kann es
 nützlich sein, korrekte MWB Farben oder eine Palette
 mit festen Farbeinstellungen zu verwenden. Es hat auch
 einen optionalen Fix für DOpus5-Fehler bei ReleasePen.

 2 modifizierte Varianten der 16-farbigen Palette von 
 Rebel sind vorhanden und können als FullPalette.prefs 
 nach Envarc:Sys kopiert und durch Aufruf von FPPrefs
 unter IPrefs verwendet werden. Dies kann eine deutlich
 ausgewogenere Farbverteilung bei Bildern ermöglichen.

 LoadModule von Thomas Richter kann diese Library oder
 andere Module wie die workbench.library resident laden
 und alte Rom-Versionen ersetzen (siehe Dokumentation).
 Für einige Optionen muss das "P"-Bit bei den Libraries
 gesetzt werden. Manche WBs v44-45 sind nicht reset-fest
 und benötigen möglicherweise die LoadModule Optionen
 IGNOREVERIFY und NOMEMFKICK, um Abbrüche zu vermeiden.
 Auf Aros 68k ab 2020 scheint LM nicht zu funktionieren.

 LoadResident von Mikolaj Calusinski ist ein ähnliches
 Tool, um Module resident zu laden. Siehe Installation.     
 Auf Aros 68k hat LoadResident bisher nie funktioniert.

 RemLib von Thomas Rapp kann Libraries aus der Liste der
 residenten Module entfernen, ohne neue Module resident
 zu laden und erfordert deshalb keinen Neustart! Nachdem
 sichergestellt ist, dass eine neue Library nach Libs: 
 kopiert wurde, kann man RemLib vor SetPatch aufrufen,
 wie bereits im Beispiel auf der Installationsseite. Es
 funktioniert auch mit Aros 68k, aber nur ohne eine MMU.

 OpenWin.rexx von DaxB ist ein Benchmark Skript, das die
 Zeit misst, um ein Fenster mit vielen Icons zu öffnen.
 Es ermöglicht, die Lade-Geschwindigkeit zu vergleichen.
 Mittels Arexx funktioniert es bei WB v44+ und DOpus5.

 Für einen Bug in Startmenu 1.30 von Martin R. Elsner
 (MRE) wurde ein Workaround hinzugefügt. Ohne irgend-
 einen verständlichen Grund ändert Startmenu mittels
 IconControlA() und SetWidth die Breite der internen
 Chunky-Bilder auf 10. Diese Änderung durch eine Task
 "Startmenu" wird nun ignoriert. Das geht aber nicht
 mit dem Project-Icon in WBStartup. Dafür kopiert man 
 MRE:Executables/Startmenu plus Icon nach WBStartup.

 HAM + Bonusprogramme 

Contents | < Browse | Browse >



 Die HAM6 und HAM8 Libs sind ein technisches Experiment.

 OS4, PNG und auch palettenbasierte Icons werden auf HAM 
 Bildschirmen mit bis zu 4096 oder 256k Farben sehr viel 
 schöner dargestellt und auch die Eastern Icons sehen in 
 HAM8 wesentlich besser aus als mit normalen Screenmodes. 
 Leider sind HAM WBs auf den Amiga Chipsätzen zu langsam. 

 Kopiere die icon.library aus dem HAM6 oder HAM8 Ordner
 nach LIBS: und FullPalette.prefs nach ENVARC:Sys, um die
 benötigten 16/64 Basisfarben zu erhalten und dann sollte
 man FPPrefs in der startup-sequence nach IPrefs starten.
 Die HAM Option gibt es nur in MUIScreenmode Preferences.

 Als Alternative, wenn man letzteres nicht installieren
 möchte, kann man meine HAM Screenmode Dateien verwenden,
 falls die zugehörigen Monitortreiber installiert wurden.
 Die Tooltypes ACTION=USE kann man in ACTION=SAVE ändern.

 Bitte niemals die Basisfarben 0-15 bzw. 0-63 der Palette
 verändern! Es gibt auch einige Dateien mit diesen Farben
 zum Erstellen dazu passender Workbenchhintergrundbilder.
 Es ist unmöglich, die MWB Farben für die letzten 4 Pens
 bei HAM Screens zu nutzen. Dann hilft Reduce8PlanesTo3.

 Die HAM Versionen bieten TrueColor Unterstützung wie bei
 TC020, aber das verzögerte zweite Bild und das Ghosting
 sind deaktiviert. DOpus5 hat keine eigene Unterstützung
 für HAM Screens, aber es geht mit "Workbench verwenden".


 DirectoryOpus 5.82 und DOpus5.83 

 "Tricky Drag°n" funktioniert jetzt auch mit DOpus 5.x
 auf P96 RTG Screens ohne die "speziellen Ziehroutinen",
 sogar mit DOpus 5.9x, aber nicht unter Aros oder CGX4.
 Wer DOpus5 eigenständig mittels LoadDB von 3.2.x starten
 will, sollte dazu IconsToFastMem nach IPrefs aufrufen.
 Der schnellste DOpus5 Screenmode ist "Workbench nutzen".

 "DOnoColorMapping" ist bei den TrueColor Versionen nun
 immer aktiviert, so dass die Option überflüssig wird.
 
 Nur die 68020 Version braucht noch "DOnoColorMapping":
 Ein völlig neuer Ansatz macht das Laden der DOPus5 Icons
 viel schneller. Statt die Farbzuweisungen zu verzögern,
 passiert es auf Hi/TrueColor-Bildschirmen garnicht mehr,
 wenn man es mit der Option DOnoColorMapping deaktiviert,
 aber man muss dazu "Spezielle Ziehroutinen" einschalten.
 Ich habe auch einen Fix für ein großes Speicherleck auf
 P96 im DOpus Code erstellt und eine bessere Transparenz-
 Maskierung für die Icons hinzugefügt, wenn die Optionen
 aktiviert sind. Sie bewirken ein schnelleres Laden der
 Icons ohne langsamere planare Bilder. Für die Versionen
 TC020, FastWB und Aros wird auch die noch HoldTCbuffer1 
 empfohlen für eine optimale Geschwindigkeit und weiche
 Icon-Ränder auf Hi/TrueColor Bildschirmen.

 Im Bonus Ordner befindet sich das fehlerbereinigte DOpus 
 5.83. Nach dem Benennen kann man DirectoryOpus ersetzen,
 wenn es durch LoadWB geladen wird. Der DOpus v5.82 Patch
 von AfA_OS (Bernd Roesch) für Eastern und DefIcons läßt
 sich immer noch auf meinem gefixten DOpus5.83 ausführen,
 weil es nur editiert aber keine neue C-Kompilierung ist.

 Der DOpus5 Bug im Custom-Dragging war die Verwendung von
 "Width" in der VSprite Struktur von AddBob() anstatt von
 "Words Per Row" und auch ohne späteres RemBob(). Der Fix
 verwendet jetzt nur noch AddVSprite() und RemVSprite().


 Die Aros 68k Version ist ziemlich identisch mit TC020,
 aber sie hat zusätzlich Unterstützung für Wanderer, der
 den Alphakanal verwendet, um den Hintergrund transparent
 zu machen. Diese Funktion muss in den Einstellungen für
 Wanderer aktiviert werden. Es ist kein v51, denn Eastern
 funktioniert noch nicht auf Aros, aber man kann DefIcons 
 v44+ von Stephan Rupprecht in WBstartup installieren und
 sein deficons.prefs von OS 3.9 nach ENVARC: kopieren. In
 der startup-sequence muss man das Kopieren von deficons
 nach ENV: wieder zulassen und vor "PAT" auskommentieren: 
 Copy ENVARC: ENV: ALL NOPRO NOREQ ; PAT "~(def_#?.info)"
 Als andere Möglichkeit: "Assign >NIL: ENV: ENVARC: ADD".
 Die Aros icon.library muss durch RemLib von Thomas Rapp
 vor SetPatch entfernt werden. Andere Tools tun es nicht.
 Die Aros 68k Version belegt grundsätzlich immer FastMem.


 Eine experimentelle FastWB Version versucht, schnelleres 
 oder flüssigeres Icon Ziehen bei Workbench 3.1.4/3.5/3.9
 für langsamere Amigas zu ermöglichen. Es ist keine 100 %
 perfekte Lösung, denn es kann immer noch vorkommen, dass
 einige Teile des Fensters, in denen man Icons zum Ziehen
 ausgewählt hat, nach dem Ablegen nicht mehr aktualisiert
 werden, aber das ist kein großes Problem, da man dieses
 Fenster immer noch über das WB-Menü aktualisieren kann.
 Der WBFix beachtet bereits Fensterwechsel, Scrollen und
 Änderungen der Fenstergröße und hat auch ein Timeout von
 einer Sekunde nach der letzten Iconbewegung, um spätere
 Grafikschäden durch sich plötzlich über diesem aktiven
 Fenster öffnende Menüs oder Requester zu vermeiden. Dies
 bringt mehr Geschwindigkeit zusammen mit HoldTCbuffer1.
 Die optimierte WB 3.2 braucht möglicherweise keinen Fix.    


 Als Bonus sind 2 skriptbasierte IconMixer enthalten, die
 mit Hilfe von ProcessIcon die (True)ColorIcons mit den
 alten planaren oder MWB Bildern kombinieren können. Die
 gemischten Icons enthalten beide Bildsätze. Je ein Skript
 behält die die MWB Icon-Einstellungen, das andere behält
 die GlowIcon Tooltypes. Meine Option "Reduce8PlanesTo3"
 könnte helfen, um 8-farbige MWB Bilder zu erzeugen ohne
 Platz zu verschwenden. Da PNG Icons keine planaren Bilder
 speichern können, müssen sie vorher mit "ConvertPNGtoOS4"
 konvertiert werden. Die Optionen "DropPlanarImages" oder
 "DropPlanar" sollte man in Werkzeugen wie RAWBInfo oder
 CopyIcon deaktivieren. Die gemischten Icons werden unter
 AfA_OS leider beschädigt.


 Mit dem neuen Skript ConvertToPngIcons im Bonusordner
 kann man alle Amiga Icons in das PNG Format umwandeln
 und optional skalieren mit Hilfe von ImageConverter.
 Das Skript kann direkt ausgeführt werden oder mittels
 DropView App-Icon oder man startet es vom Tool-Menü.
 Die Option "CRUSH" wurde zu dem Skript ConvertToPngIcon
 hinzugefügt, um mittels PngCrush eine besser optimierte
 PNG Komprimerung durch Probieren zahlreicher Strategien
 mit unterschiedlichen Filtern zu ermöglichen.


 LD020 verwendet älteres zeilenweises Zeichnen auf RTG,
 was manchmal noch schneller läuft als der 68020 Code.

 Die HB020 Version zeigt ein zweites halbhelles Bild bei
 TrueColor Icons mit nur einem Bild, keinen Glow-Effekt. 

 Die Patches für workbench.library 45.127 und 45.131 auf
 45.132 enthalten einige Fehlerkorrekturen (siehe lha).

Kontakt und Berichte

Contents | < Browse | Browse >



 Wenn jemand Probleme mit der icon.library hat, neue
 Features wünscht oder Verbesserungsvorschläge machen
 möchte, kann er mir eine E-Mail zusenden an:  
             <pkeunecke@alice-dsl.net>

 oder meine Threads bei A1k.org oder EAB benutzen: 

 http://www.a1k.org/forum/index.php?threads/27403/
 http://eab.abime.net/showthread.php?t=64079

 Ich werde aber nie in anderen Foren, bei Facebook, 
 Twitter, Reddit und sonstigen sozialen Medien oder 
 in IRC Chats auftauchen bzw. Fragen beantworten. 

 Erfahrungsberichte von Anwendern sind immer nützlich
 und willkommen, denn es ist manchmal sehr schwierig,
 nur durch Tests versteckte Fehler zu finden. Es kann
 Jahre dauern, bis ich zufällig ein Problem entdecke,
 wenn niemand mir einen Bug-Report zuschickt.

 Bitte eine Systembeschreibung mit Informationen zur
 ROM, OS und WB Version, CPU, Screenmode, FBlit, P96,
 CGX, zur startup-sequence und verwendeten Patches,
 Icon-Typ, Library Version und Screenshots beifügen. 

 Vielen Dank an alle Amiga User, die bereits Fehler
 gemeldet oder mir ihre Vorschläge mitgeteilt haben!

 Einschränkungen !! 

Contents | < Browse | Browse >



 Die Verteilung oder die Installation der TrueColor

 Versionen dieser icon.library mit oder auf AmiKit X,

 AmiKit XE oder einer anderen Freeware Distribution

 für mehr als 10 Euro sind nicht erlaubt. Auch die

 Bündelung mit kommerziellen Produkten ist verboten!

 Dies gilt für alle Aros-, LD020 und v51 Versionen.

 Sie können aber weiterhin die neuen 68000 oder 68020

 Versionen oder andere Versionen von älteren Ausgaben

 bis hin zu Build #538 ohne Einschränkungen verwenden.

 Rechte & Verteilung 

Contents | < Browse



 Dieses Programm ist Freeware. Ich gebe keine Garantien.
 Die Benutzung erfolgt auf eigenes Risiko und der Nutzer
 trägt für jegliche Schäden an seinem System selbst die
 Verantwortung. Diese icon.library ist vollständig frei
 und unabhängig vom AmigaOS Copyright. :)

 Diese Einschränkungen zur Verteilung sind zu beachten! 


 Copyright 2007-2025:

   Peter Keunecke

Converted using GuideML 3.17